/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.Border;
import starfox.RecordesState;

/**
 *
 * @author Lucas
 */

//Janela para avisar que o jogador conseguiu um novo recorde e pegar seu nome
public class JanelaRecordes extends JFrame {
    //Botão de OK
    private JButton ok = new JButton("OK");
    //Área de texto para o nome
    private JTextField fieldn = new JTextField(20);
    String nome;
    
    //Atributos para pegar a dimensão da tela e centralizar a janela
    Toolkit tk = Toolkit.getDefaultToolkit();
    Dimension d = tk.getScreenSize();
    
    public JanelaRecordes(final int pontos){
        super("Novo recorde!");
        //Só fechar a janela com o botão de OK, quando tiver um nome válido
        setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
        
        //Painel para ser aplicado ao JFrame
        JPanel painel = new JPanel();
        getContentPane().add(painel);
        painel.setLayout(new BorderLayout());
        
        //Painel com a JTextField de nome
        JPanel painelNome = new JPanel();
        //Adicionar o painel com o no me ao painel principal
        painel.add(painelNome, BorderLayout.CENTER);
        painelNome.setLayout(new FlowLayout(FlowLayout.CENTER));
        painelNome.add(fieldn);
        //Criar uma borda com título
        Border borda = BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Digite seu nome");
        painelNome.setBorder(borda);
        
        //Criar um botão de OK e adicioná-lo ao painel de botão
        ok.setPreferredSize(new Dimension(90, 25));
        JPanel pBotao = new JPanel();
        pBotao.setLayout(new FlowLayout(FlowLayout.RIGHT));
        pBotao.add(ok);
        
        //Adicionar um Listener ao botão para pegar o nome do jogador e adicionar um novo recorde
        ok.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                nome = fieldn.getText();
                /*Se a string não for "vazia" (""), adicionar o nome
                 * e os pontos ao array de recordes e fechar a janela.*/
                if(!"".equals(nome)){
                    RecordesState.adicionarRecorde(new Recorde(nome, pontos));
                    dispose();
                }
            }
        });
        
        //Adicionar o painel de botões ao sul do painel principal
        painel.add(pBotao, BorderLayout.SOUTH);
        
        //Acertar o tamanho da janela e torná-la visível no centro da tela
        pack();
        setVisible(true);
        setLocation(d.width/2 - this.getWidth()/2, d.height/2 - this.getHeight());
    }
}
